home *** CD-ROM | disk | FTP | other *** search
Wrap
libpbm(3) Unix Programmer's Manual libpbm(3) NNNAAAMMMEEE libpbm - functions to support portable bitmap programs SSSYYYNNNOOOPPPSSSIIISSS #include <pbm.h> cc ... libpbm.a DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN --- PPPAAACCCKKKAAAGGGEEE-WWWIIIDDDEEE RRROOOUUUTTTIIINNNEEESSS int pm_keymatch( char* str, char* keyword, int minchars ) DDDoooeeesss aaa cccaaassseee-iiinnnssseeennnsssiiitttiiivvveee mmmaaatttccchhh ooofff ssstttrrr against kkkeeeyyywwwooorrrddd. ssstttrrr can be a leading sunstring of kkkeeeyyywwwooorrrddd, but at least mmmiiinnnccchhhaaarrrsss must be present. int pm_maxvaltobits( int maxval ) int pm_bitstomaxval( int bits ) CCCooonnnvvveeerrrttt bbbeeetttwwweeeeeennn aaa mmmaaaxxxvvvaaalll aaannnddd ttthhheee mmmiiinnniiimmmuuummm nnnuuummmbbbeeerrr ooofff bbbiiitttsss rrreeeqqquuuiiirrreeeddd tttooo hhhooolllddd iiittt... vvvoooiiiddd pppmmm___mmmeeessssssaaagggeee((( ccchhhaaarrr*** fffmmmttt,,, ......... ))) ppprrriiinnntttfff((())) style routine to write an informational message. void pm_error( char* fmt, ... ) ppprrriiinnntttfff((())) style routine to write an error message and abort. void pm_perror( char* reason ) WWWrrriiittteee ooouuuttt aaa sssyyysssttteeemmm eeerrrrrrooorrr mmmeeessssssaaagggeee aaannnddd aaabbbooorrrttt... vvvoooiiiddd pppmmm___uuusssaaagggeee((( ccchhhaaarrr*** uuusssaaagggeee ))) WWWrrriiittteee aaa uuusssaaagggeee mmmeeessssssaaagggeee... TTThhheee ssstttrrriiinnnggg ssshhhooouuulllddd iiinnndddiiicccaaattteee wwwhhhaaattt aaarrrggguuummmeeennntttsss aaarrreee tttooo bbbeee ppprrrooovvviiidddeeeddd tttooo ttthhheee ppprrrooogggrrraaammm... FFFIIILLLEEE*** pppmmm___ooopppeeennnrrr((( ccchhhaaarrr*** nnnaaammmeee ))) OOOpppeeennn ttthhheee gggiiivvveeennn fffiiillleee fffooorrr rrreeeaaadddiiinnnggg,,, wwwiiittthhh aaapppppprrroooppprrriiiaaattteee eeerrrrrrooorrr ccchhheeeccckkkiiinnnggg... AAA fffiiillleeennnaaammmeee ooofff """-""" iiisss tttaaakkkeeennn aaasss eeeqqquuuiiivvvaaallleeennnttt tttooo ssstttdddiiinnn... FFFIIILLLEEE*** pppmmm___ooopppeeennnwww((( ccchhhaaarrr*** nnnaaammmeee ))) OOOpppeeennn ttthhheee gggiiivvveeennn fffiiillleee fffooorrr wwwrrriiitttiiinnnggg,,, wwwiiittthhh aaapppppprrroooppprrriiiaaattteee eeerrrrrrooorrr ccchhheeeccckkkiiinnnggg... vvvoooiiiddd pppmmm___ccclllooossseee((( FFFIIILLLEEE*** fffppp ))) CCClllooossseee ttthhheee fffiiillleee dddeeessscccrrriiippptttooorrr,,, wwwiiittthhh aaapppppprrroooppprrriiiaaattteee eeerrrrrrooorrr ccchhheeeccckkkiiinnnggg... iiinnnttt pppmmm___rrreeeaaadddbbbiiigggssshhhooorrrttt((( FFFIIILLLEEE*** iiinnn,,, ssshhhooorrrttt*** sssPPP ))) iiinnnttt pppmmm___wwwrrriiittteeebbbiiigggssshhhooorrrttt((( FFFIIILLLEEE*** ooouuuttt,,, ssshhhooorrrttt sss ))) iiinnnttt pppmmm___rrreeeaaadddbbbiiiggglllooonnnggg((( FFFIIILLLEEE*** iiinnn,,, lllooonnnggg*** lllPPP ))) iiinnnttt pppmmm___wwwrrriiittteeebbbiiiggglllooonnnggg((( FFFIIILLLEEE*** ooouuuttt,,, lllooonnnggg lll ))) 1 libpbm(3) Unix Programmer's Manual libpbm(3) iiinnnttt pppmmm___rrreeeaaadddllliiittttttllleeessshhhooorrrttt((( FFFIIILLLEEE*** iiinnn,,, ssshhhooorrrttt*** sssPPP ))) iiinnnttt pppmmm___wwwrrriiittteeellliiittttttllleeessshhhooorrrttt((( FFFIIILLLEEE*** ooouuuttt,,, ssshhhooorrrttt sss ))) iiinnnttt pppmmm___rrreeeaaadddllliiittttttllleeelllooonnnggg((( FFFIIILLLEEE*** iiinnn,,, lllooonnnggg*** lllPPP ))) iiinnnttt pppmmm___wwwrrriiittteeellliiittttttllleeelllooonnnggg((( FFFIIILLLEEE*** ooouuuttt,,, lllooonnnggg lll ))) RRRooouuutttiiinnneeesss tttooo rrreeeaaaddd aaannnddd wwwrrriiittteee ssshhhooorrrttt aaannnddd lllooonnnggg iiinnntttsss iiinnn eeeiiittthhheeerrr bbbiiiggg- ooorrr llliiittttttllleee--- eeennndddiiiaaannn bbbyyyttteee ooorrrdddeeerrr... DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN --- PPPBBBMMM-SSSPPPEEECCCIIIFFFIIICCC RRROOOUUUTTTIIINNNEEESSS typedef ... bit; #define PBM_WHITE ... #define PBM_BLACK ... eeeaaaccchhh bbbiiittt should contain only the values of PPPBBBMMM___WWWHHHIIITTTEEE or PPPBBBMMM___BBBLLLAAACCCKKK. #define PBM_FORMAT ... #define RPBM_FORMAT ... #define PBM_TYPE PBM_FORMAT #define PBM_FORMAT_TYPE(f) ... FFFooorrr dddiiissstttiiinnnggguuuiiissshhhiiinnnggg dddiiiffffffeeerrreeennnttt fffiiillleee fffooorrrmmmaaatttsss aaannnddd tttyyypppeeesss... vvvoooiiiddd pppbbbmmm___iiinnniiittt((( iiinnnttt*** aaarrrgggcccPPP,,, ccchhhaaarrr*** aaarrrgggvvv[[[]]] ))) AAAllllll PPPBBBMMM ppprrrooogggrrraaammmsss mmmuuusssttt cccaaallllll ttthhhiiisss rrrooouuutttiiinnneee... bbbiiittt****** pppbbbmmm___aaallllllooocccaaarrrrrraaayyy((( iiinnnttt cccooolllsss,,, iiinnnttt rrrooowwwsss ))) AAAllllllooocccaaattteee aaannn aaarrrrrraaayyy ooofff bbbiiitttsss... bbbiiittt*** pppbbbmmm___aaallllllooocccrrrooowww((( iiinnnttt cccooolllsss ))) AAAllllllooocccaaattteee aaa rrrooowww ooofff ttthhheee gggiiivvveeennn nnnuuummmbbbeeerrr ooofff bbbiiitttsss... vvvoooiiiddd pppbbbmmm___fffrrreeeeeeaaarrrrrraaayyy((( bbbiiittt****** bbbiiitttsss,,, iiinnnttt rrrooowwwsss ))) FFFrrreeeeee ttthhheee aaarrrrrraaayyy aaallllllooocccaaattteeeddd wwwiiittthhh pppbbbmmm___aaallllllooocccaaarrrrrraaayyy((())) containing the given number of rows. void pbm_freerow( bit* bitrow ) FFFrrreeeeee aaa rrrooowww ooofff bbbiiitttsss... vvvoooiiiddd pppbbbmmm___rrreeeaaadddpppbbbmmmiiinnniiittt((( FFFIIILLLEEE*** fffppp,,, iiinnnttt*** cccooolllsssPPP,,, iiinnnttt*** rrrooowwwsssPPP,,, iiinnnttt*** fffooorrrmmmaaatttPPP ))) RRReeeaaaddd ttthhheee hhheeeaaadddeeerrr fffrrrooommm aaa PPPBBBMMM fffiiillleee,,, fffiiilllllliiinnnggg iiinnn ttthhheee rrrooowwwsss,,, cccooolllsss aaannnddd fffooorrrmmmaaattt vvvaaarrriiiaaabbbllleeesss... vvvoooiiiddd pppbbbmmm___rrreeeaaadddpppbbbmmmrrrooowww((( FFFIIILLLEEE*** fffppp,,, bbbiiittt*** bbbiiitttrrrooowww,,, iiinnnttt cccooolllsss,,, iiinnnttt fffooorrrmmmaaattt ))) RRReeeaaaddd aaa rrrooowww ooofff bbbiiitttsss iiinnntttooo ttthhheee bbbiiitttrrrooowww aaarrrrrraaayyy... FFFooorrrmmmaaattt aaannnddd cccooolllsss wwweeerrreee fffiiilllllleeeddd iiinnn bbbyyy pppbbbmmm___rrreeeaaadddpppbbbmmmiiinnniiittt((())). bit** pbm_readpbm( FILE* fp, int* colsP, int* rowsP ) 2 libpbm(3) Unix Programmer's Manual libpbm(3) RRReeeaaaddd aaannn eeennntttiiirrreee bbbiiitttmmmaaappp fffiiillleee iiinnntttooo mmmeeemmmooorrryyy,,, rrreeetttuuurrrnnniiinnnggg ttthhheee aaallllllooocccaaattteeeddd aaarrrrrraaayyy aaannnddd fffiiilllllliiinnnggg iiinnn ttthhheee rrrooowwwsss aaannnddd cccooolllsss vvvaaarrriiiaaabbbllleeesss... TTThhhiiisss fffuuunnnccctttiiiooonnn cccooommmbbbiiinnneeesss pppbbbmmm___rrreeeaaadddpppbbbmmmiiinnniiittt((())), pppbbbmmm___aaallllllooocccaaarrrrrraaayyy((())) and pppbbbmmm___rrreeeaaadddpppbbbmmmrrrooowww((())). void pbm_writepbminit( FILE* fp, int cols, int rows, int forceplain ) WWWrrriiittteee ttthhheee hhheeeaaadddeeerrr fffooorrr aaa pppooorrrtttaaabbbllleee bbbiiitttmmmaaappp fffiiillleee... TTThhheee fffooorrrccceeeppplllaaaiiinnn ffflllaaaggg fffooorrrccceeesss aaa ppplllaaaiiinnn-fffooorrrmmmaaattt fffiiillleee tttooo bbbeee wwwrrriiitttttteeennn,,, aaasss oooppppppooossseeeddd tttooo aaa rrraaawww-fffooorrrmmmaaattt ooonnneee... vvvoooiiiddd pppbbbmmm___wwwrrriiittteeepppbbbmmmrrrooowww((( FFFIIILLLEEE*** fffppp,,, bbbiiittt*** bbbiiitttrrrooowww,,, iiinnnttt cccooolllsss,,, iiinnnttt fffooorrrccceeeppplllaaaiiinnn ))) WWWrrriiittteee aaa rrrooowww fffrrrooommm aaa pppooorrrtttaaabbbllleee bbbiiitttmmmaaappp... vvvoooiiiddd pppbbbmmm___wwwrrriiittteeepppbbbmmm((( FFFIIILLLEEE*** fffppp,,, bbbiiittt****** bbbiiitttsss,,, iiinnnttt cccooolllsss,,, iiinnnttt rrrooowwwsss,,, iiinnnttt fffooorrrccceeeppplllaaaiiinnn ))) WWWrrriiittteee ttthhheee hhheeeaaadddeeerrr aaannnddd aaallllll dddaaatttaaa fffooorrr aaa pppooorrrtttaaabbbllleee bbbiiitttmmmaaappp... TTThhhiiisss fffuuunnnccctttiiiooonnn cccooommmbbbiiinnneeesss pppbbbmmm___wwwrrriiittteeepppbbbmmmiiinnniiittt((())) and pppbbbmmm___wwwrrriiittteeepppbbbmmmrrrooowww((())). SSSEEEEEE AAALLLSSSOOO libpgm(3), libppm(3), libpnm(3) AAAUUUTTTHHHOOORRR Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer. 3